首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏猿计划

    基于c++实现简易http服务器

    前言看到《基于c实现简易http服务器》进来的童鞋,你肯定本篇文章是使用基础的C++ 的socket来实现http服务器吧,你以为错了,使用基础的C++ 的socket来实现http服务器的文章百度一下有一大把了 ,我想介绍一个比较有意思的,而且实用性很强的基于C++实现建议http服务器的方案以及实现。 站在巨人的肩膀上因为我自己做的一个项目用到了C++实现的http服务器,在做项目的时候已经考虑了很多方案例如使用httplib库等。 Boost库的目标是成为C++标准库的候选扩展,许多Boost组件已经被纳入C++标准。 由于其高质量和广泛应用,Boost库的一些组件已被纳入C++标准,成为C++语言的一部分。

    2.5K10编辑于 2023-11-22
  • 来自专栏公众号:懒时小窝

    七、《图解HTTP》- HTTP首部和HTTP协作服务器

    #tjhttp 七、《图解HTTP》- HTTP首部和HTTP协作服务器#知识点请求头部字段分类比较多,本章介绍了下面的首部,内容非常多,熟悉常见的请求首部即可。 首部字段介绍非HTTP1.1 首部字段通用首部请求首部响应首部负载首部(实体首部)其他首部字段协作服务器指的是为了HTTP加速访问而架设的一些中间件介绍,内容介绍比较匮乏,个人也没有补充,简单浏览即可图片图片 ,注意和服务器以及客户端之间的HTTP访问认证不同,这是代理服务器和客户端之间的认证。 ,当客户端想获得 HTTP 状态管理支持时,就会在请求中包含从服务器接收到的 Cookie。 HTTP协作服务器7.1 单台虚拟机多域名HTTP1.1支持服务器搭建多个站点,提供WEB托管服务, 而针对域名和IP的映射以及查找工作涉及到DNS,域名需要通过DNS解析之后才能进行访问,当请求发送到服务器的时候使用的已经是

    2.2K10编辑于 2022-08-12
  • 来自专栏Linux网络

    【Linux 网络】理解并应用应用层协议:HTTP(附简单HTTP服务器C++代码)

    HTTP是互联网世界的基石,它定义了客户端(如浏览器)与服务器之间进行通信的标准方式,主要用于交换或传输超文本数据(例如 HTML 文档)。 HTTP协议遵循标准的请求-响应(Request-Response)模型: 请求:客户端通过HTTP协议主动向服务器发送请求。 HTTP协议具有两个显著特点: 无连接:每一次请求都想要建立一个新的连接,处理完既断开 无状态:服务器不会保存客户端的状态信息。这意味着对于服务器而言,每一次请求都是全新的,它不具有记忆功能。 中的 Connection 字段是HTTP报头的⼀部分,它主要用于控制和管理客户端与服务器之间的连接状态。 当客户端和服务器都不明确关闭连接的时候,连接将保持打开状态。以便于后续请求和响应可以复用同一个连接。 在HTTP1.0中,默认使用的是非持久连接。

    14510编辑于 2026-01-14
  • 来自专栏hi

    原生HTTP服务器

    原生HTTP服务器 学习过Nodejs的朋友肯定对下面这段代码非常熟悉: const http = require('http'); let server = http.createServer((req }) server.listen(3000) 就这样简单几行代码,就搭建了一个简单的服务器服务器以回调函数的形式处理HTTP请求。 上面这段代码还有一种更加清晰的等价形式,代码如下: let server = new http.Server(); server.on("request", function(req, res){ // HttpServer继承与net.Server,它使用http_parser对连接的socket对象进行解析,当解析完成http header之后,会触发request事件,body数据继续保存在流中, req是http.IncomingMessage实例(同时实现了Readable Stream接口),详情请参看文档 res是http.ServerResponse实例(同时实现了Writable Stream

    3.1K60发布于 2018-05-25
  • 来自专栏sktj

    Go http服务器

    image.png sync.Mutex锁 image.png image.png 返回更详细的信息 image.png

    2.1K20发布于 2019-07-17
  • 来自专栏沈唁志

    网页服务器HTTP响应状态-HTTP状态码

    HTTP 状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码。 500-内部服务器错误。 500.12-应用程序正忙于在 Web 服务器上重新启动。 500.13-Web 服务器太忙。 500.15-不允许直接请求 Global.asa。 505-HTTP 版本不受支持。 常见的错误,HTTP 500 :出现 HTTP 500 – 内部服务器错误,通常有两种原因 是服务器错误(这种可能性比较小) 是程序因某种因素导致服务器运行出错 另外,造成 500 错误常见原因还有: 原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:网页服务器HTTP响应状态-HTTP状态码

    7.5K20发布于 2018-05-24
  • 来自专栏后端码事

    简单的 http 服务器

    简单的基于socket和NIO的 http server示例: 项目路径:https://github.com/windwant/windwant-demo/tree/master/httpserver-demo 45 uri = sb.substring(i + 1, j).toString(); 46 System.out.println("http /test.jpg"))){ 48 uri = "/404.html"; 49 System.out.println("http } 46 out.flush(); 47 }else{ 48 sb.append("HTTP b = new byte[BUFFER_SIZE]; 72 } 73 }else{ 74 sb.append("HTTP

    2K30发布于 2020-09-11
  • 来自专栏后台技术杂项笔记

    简易http服务器Tinyhttpd

    Tinyhttp运作流程 (参考博客的贴图): 具体文字流程也可在github项目找到,如下: (1) 服务器启动,在指定端口或随机选取端口绑定 httpd 服务。 (4) 格式化 url 到 path 数组,表示浏览器请求的服务器文件路径,在 tinyhttpd 中服务器文件是在 htdocs 文件夹下。 (5) 如果文件路径合法,对于无参数的 GET 请求,直接输出服务器文件到浏览器,即用 HTTP 格式写到套接字上,跳到(10)。 (6) 读取整个 HTTP 请求并丢弃,如果是 POST 则找出 Content-Length. 把 HTTP 200 状态码写到套接字。 参考《TLPI》P49 perror(sc); exit(1); } int main(void){ int server_sock = -1; //服务器的sock文件描述符 u_short

    2.1K10编辑于 2022-09-26
  • 来自专栏纯情博客

    co-uring-http: 基于 C++ 无栈协程与 io_uring 的高性能 HTTP 服务器

    C++ 20 引入的无栈协程让编写异步程序容易了不少, 之前通过回调函数实现的功能可以全部通过类似同步代码的写法来实现. 为了体验这些特性, 我用 C++ 20 协程与 io_uring 重新实现了一个烂大街项目: HTTP 服务器. 鉴于以前没用过 C++ 写项目, 再加上 GitHub 常见的 HTTP 服务器项目是基于 Reactor 模式与 epoll 实现的, 以至于我在开发的过程中能借鉴 (指复制) 的机会并不多, 希望各位包容一下我的逆天代码 主要特性 使用 C++ 20 协程简化服务端与客户端的异步交互 使用 io_uring 管理异步 I/O 请求, 例如 accept(), recv(), send() 使用 ring-mapped buffers 缓冲区的数量与大小的常量定义于 constant.hpp, 可以根据 HTTP 服务器的预估工作负载进行调整.

    96210编辑于 2023-05-07
  • 来自专栏原创分享

    利用多线程和 C++ 实现一个简单的 HTTP 服务器

    前言:服务器是现代软件不可或缺的一部分,而服务器的技术也是非常复杂和有趣的方向。随着操作系统不断地发展,服务器的底层架构也在不断变化。 本文介绍一种使用 C++ 和 多线程实现的简单 HTTP 服务器。 首先我们先来看一下如何创建一个服务器。 但是这样的功能显然没有太大意义,所以我们基于这个基础上实现一个 HTTP 服务,让它可以处理 HTTP 请求。 当 llhttp 回调 HTTP_Parser 时,HTTP_Parser 在合适的时机就会调用 parser_callback 里的回调,比如在解析完 HTTP Header 时,或者解析完整个报文时 到此为止,就实现了一个 HTTP 服务器了 ,在早期的时候,服务器也是采用这种多进程 / 多线程的处理方式,现在有了多路复用等技术后,很多服务器都是基于事件驱动来实现了。

    2.4K30编辑于 2022-12-06
  • 来自专栏大学生计算机视觉学习DeepLearning

    c++ 网络编程(十一)TCPIP LINUX 初步制作基于HTTP的WEB服务器

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9663028.html HTTP概要 理解Web服务器端: 编写HTTP(超文本传输协议)服务器端 ,即Web服务器端,我们可以这样定义它:基于HTTP协议,将网页对应文件传输给客服端的服务器端。 这里浏览器就相当于客服端,定好的数据格式就是HTTP协议,Web服务器的工作主要就是传输这些数据给浏览器。 (服务端响应客服端请求的数据包结构) 一、http服务器实现的基本框架 关于HTTP协议 即超文本传输协议,是互联网上应用最广泛的网络协议。它是应用层的协议,底层是基于TCP通信的。 连接在资源路径后边;POST方法使用的是不带参数的URL,它的参数是通过http请求报头中的请求消息体传递给服务器的。 关于HTTP的请求与响应格式 ?

    2.2K40发布于 2018-09-30
  • 来自专栏超然的博客

    肢解 HTTP 服务器构建

    最简单的 http 服务器 // server.js var http = require("http"); http.createServer(function(request, response 肢解代码 var http = require("http") 请求(require)Node.js自带的 http 模块,并且把它赋值给 http 变量 createServer listen 方法 -数值参数指定该 HTTP 服务器监听的端口号 createServer 的参数 基于事件驱动的回调 无论何时我们的服务器收到一个请求,这个函数就会被调用 请求处理 onRequest() 函数被触发的时候 ,有两个参数对象 request response // 发送一个HTTP状态200和HTTP头的内容类型 response.writeHead(200, {"Content-Type": "text 模块封装 这一步我们把server.js变成一个真正的Node.js模块 函数封装 将我们的脚本封装到一个函数里面,然后导出该封装函数 var http = require("http");

    1.6K10发布于 2018-08-03
  • 来自专栏C++技术干货

    C++使用HTTP库和框架轻松发送HTTP请求

    一、前言使用C++编程发送HTTP请求通常需要使用第三方的HTTP库或框架。在C++中,有几个受欢迎的HTTP库可供选择,例如Curl、Boost.Beast和cpp-httplib。 编写一个C++代码示例来使用Curl库发送HTTP请求。将以下代码保存为.cpp文件(例如curl.cpp)。 /httplib_example五、自己实现socket发送 HTTP 请求通过使用C++中的套接字(Socket)来发送HTTP请求的方式不具备第三方库或框架那样的功能和性能。 ." << std::endl; return 1; } // 设定服务器地址和端口 std::string server = "192.168.1.101"; "User-Agent: C++ HTTP Client\r\n" "Connection: close\r\n\r\n"; // 发送HTTP请求 if

    1.8K10编辑于 2025-04-26
  • 来自专栏韩曙亮的移动开发专栏

    【Netty】使用 Netty 开发 HTTP 服务器 ( HTTP 请求过滤 )

    文章目录 一、 HTTP 服务器请求过滤功能 1 . HTTP 服务器资源请求过滤 2 . HTTP 请求过滤方法 二、 HTTP 服务器 ( 资源过滤 ) 代码实现 1 . 服务器主程序 2 . 服务器业务逻辑处理类 3 . 执行结果 一、 HTTP 服务器请求过滤功能 ---- 1 . HTTP 服务器资源请求过滤 在上述代码案例中 , 运行后 , 服务器端收到了两次 HTTP 请求 , 这里的两次请求 , 一个是请求 http://127.0.0.1:8888/ 地址资源 , 令一个是请求网站的图标 ; 显然我们只关心请求的 http://127.0.0.1:8888/ 地址资源 , 不关心网站图标 ; 服务器端需要屏蔽第二次对图标资源的请求 ; 2 . ; import kim.hsl.netty.ServerHandler; /** * HTTP 服务器 * 客户端使用浏览器访问即可 */ public class HTTPServer {

    1.7K10编辑于 2023-03-27
  • 从零开始实现一个C++高性能服务器框架----Http模块

    简介 项目介绍:实现了一个基于协程的服务器框架,支持多线程、多协程协同调度;支持以异步处理的方式提高服务器性能;封装了网络相关的模块,包括socket、http、servlet等,支持快速搭建HTTP服务器或 WebSokcet服务器Http模块,封装了sokcet常用方法,支持http协议解析,客户端实现连接池发送请求,服务器端实现servlet模式处理客户端请求,支持单Reator多线程,多Reator多线程模式的服务器。 ) 实现了uri解析(Uri) 封装了HTTP会话,负责服务器接收请求和发送响应(HttpSession) 封装了用于HTTP服务器的相关方法(HttpServer) 封装了客户端发送请求和接收响应及HTTP 服务器 johnsonli::http::HttpServer::ptr server(new johnsonli::http::HttpServer(true)); johnsonli::Address

    25010编辑于 2025-12-16
  • 来自专栏hbbliyong

    nodejs配置简单HTTP服务器

    1.介绍 http-server 是一个简单的零配置命令行HTTP服务器, 基于 nodeJs.  如果你不想重复的写 nodeJs 的 web-server.js, 则可以使用这个. 2.安装 npm install -g http-server 安装成功如下:  ? 3.使用 在站点目录下开启命令行输入  http-server  运行结果如图:  ? 在浏览器输入  http://localhost:8080/ 结果如下:  ? 4.http-server一些参数介绍 -p 端口号 (默认 8080) -a IP 地址 (默认 0.0.0.0) -d 显示目录列表 (默认 'True') -i 显示 autoIndex (默认 log消息 -P or --proxy Proxies all requests which can't be resolved locally to the given url. e.g.: -P http

    2K50发布于 2018-03-06
  • 来自专栏Java帮帮-微信公众号-技术文章全总结

    web服务器HTTP协议

    BS====>浏览器+服务器 只要有浏览器就可以 CS----->客户端+服务器. 必须的在客户端安装程序. 现在基本上开发的都是BS程序 BS怎样通信: 必须有请求有响应。 ://www.baidu.com 1.访问一个网站的过程 http://www.baidu.com http 协议 www 服务器 .baidu.com 域名 IP 步骤 1.上网将baidu首页下载下来 浏览器与WEB服务器之间交换数据的过程。 4xx 客户端错误 5xx 服务器错误 200 正确 302 重定向 304 页面没有改变 404 未找到页面 500 服务器出错. 这种操作 1.服务器配置方式 tomcat配置实现压缩 80端口没有配置 00:00:00.000 0.228 7553 GET 200 text/html http://localhost/ 8080

    3.3K60发布于 2018-03-19
  • 来自专栏折腾折腾再折腾

    python实现简单http服务器

    这实现http服务器之前,需要给大家补充一点知识,http协议。 首先http协议是基于tcp协议的,这里会用到我们前几天写的tcp服务器的知识。 我们暂且把http协议当做一个规定,就是说在浏览器访问一个页面时候,浏览器会发送一些东西给服务器,那么你发送的这些东西就是基于http协议发送的。 我们只需要先了解前两个: GET / HTTP/1.1:GET表示请求,/表示访问主页,HTTP/1.1表示http协议1.1版本 Host:网址或者ip地址 看一下百度服务器给我们返回了什么 ? 了解了这些,我们来实现一个简单的http服务器。 其实http协议是基于tcp协议的。http协议在tcp的基础上,对服务器返回的数据的一些规定。 这样我们就实现了一个简单的http服务器。 tcp的3次握手 第一次握手:客户端将标志位SYN赋值为1,随机产生一个参数赋值给seq,发送给服务器。等待服务器确定。

    3K10发布于 2019-09-23
  • 来自专栏开源部署

    Nodejs搭建本地http服务器

    由于不做php相关的东西,懒得装apache,干脆利用nodejs搭建一个本地的服务器用于测试。 nodejs这玩意儿吧,对做前端的介入后端简直就是一把利器。 像搭建http服务器这种功能,本来是apache已经封装好的,但nodejs需要我们手动来搭建。其实在实际应用中,我们可以使用现成的框架。但这里,我想手动搭建,也加深一下对http服务器的理解。 我们node执行下面这个文件,我命名为http.js,它将创建一个httpServer并监听3000端口。 var PORT = 3000; var http = require('http'); var url=require('url'); var fs=require('fs'); var mine=require 所以,http.createServer的回调其实是在一次页面访问中执行了多次的。

    3.8K30编辑于 2022-07-01
  • 来自专栏Golang语言社区

    go http 服务器编程(2)

    Request 最后一部分,要讲讲 Handler 函数接受的两个参数:http.Request 和http.ResponseWriter。 , 就是 200 状态码 // A ResponseWriter interface is used by an HTTP handler to // construct an HTTP response func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { fmt.Fprint(w, "Welcome \n") } func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { fmt.Fprintf(w, 本文来自:开源中国博客 感谢作者:柠檬酷 查看原文:go http 服务器编程

    1.6K40发布于 2018-03-23
领券